package dados;

import java.io.Serializable;
import java.sql.Timestamp;


public class Registo implements Serializable {
	
	//TODO: Editar serial id
	private static final long serialVersionUID = 1L;
	private Timestamp timestamp;
	private String sigla;
	private int quantidade;
	private double valor;
	private boolean compra_venda;
	private TipoSugestao tiposugestao;
	
	public Registo (String sigla, int quantidade, double valor, boolean compra_venda, TipoSugestao tiposugestao){
		this.sigla = sigla;
		this.quantidade = quantidade;
		this.valor = valor;
		this.compra_venda = compra_venda;
		this.tiposugestao = tiposugestao;
	}

	public Registo(Timestamp timestamp, String sigla, int quantidade, double valor, boolean compra_venda, TipoSugestao tiposugestao) {
		this.timestamp = timestamp;
		this.sigla = sigla;
		this.quantidade = quantidade;
		this.valor = valor;
		this.compra_venda = compra_venda;
		this.tiposugestao = tiposugestao;
	}
	
	public Registo(Timestamp timestamp, String sigla, int quantidade, double valor, boolean compra_venda) {
		this.timestamp = timestamp;
		this.sigla = sigla;
		this.quantidade = quantidade;
		this.valor = valor;
		this.compra_venda = compra_venda;
	}

	public Timestamp getTimestamp() {
		return timestamp;
	}

	public void setTimestamp(Timestamp timestamp) {
		this.timestamp = timestamp;
	}

	public String getSigla() {
		return sigla;
	}

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

	public int getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}

	public double getValor() {
		return valor;
	}

	public void setValor(double valor) {
		this.valor = valor;
	}

	public boolean isCompra_venda() {
		return compra_venda;
	}

	public void setCompra_venda(boolean compra_venda) {
		this.compra_venda = compra_venda;
	}

	public TipoSugestao getTiposugestao() {
		return tiposugestao;
	}

	public void setTiposugestao(TipoSugestao tiposugestao) {
		this.tiposugestao = tiposugestao;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (compra_venda ? 1231 : 1237);
		result = prime * result + quantidade;
		result = prime * result + ((sigla == null) ? 0 : sigla.hashCode());
		result = prime * result
				+ ((timestamp == null) ? 0 : timestamp.hashCode());
		long temp;
		temp = Double.doubleToLongBits(valor);
		result = prime * result + (int) (temp ^ (temp >>> 32));
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Registo other = (Registo) obj;
		if (compra_venda != other.compra_venda)
			return false;
		if (quantidade != other.quantidade)
			return false;
		if (sigla == null) {
			if (other.sigla != null)
				return false;
		} else if (!sigla.equals(other.sigla))
			return false;
		if (timestamp == null) {
			if (other.timestamp != null)
				return false;
		} else if (!timestamp.equals(other.timestamp))
			return false;
		if (Double.doubleToLongBits(valor) != Double
				.doubleToLongBits(other.valor))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Registo [timestamp=" + timestamp + ", sigla=" + sigla
				+ ", quantidade=" + quantidade + ", valor=" + valor
				+ ", compra_venda=" + compra_venda + "]";
	}
}
